/*
 * InterpretadorPortugolVisualView.java
 */
package interpretadorportugolvisual;

import br.org.isvi.interpretador.portugol.SabbleInterpreter;
import br.org.isvi.interpretador.portugol.access.ExercicioDAO;
import br.org.isvi.interpretador.portugol.access.IPVBusinessFacade;
import br.org.isvi.interpretador.portugol.access.Session;
import br.org.isvi.interpretador.portugol.model.Exercicio;
import interpretadorportugolvisual.cadastros.CadastroAlunosDialog;
import interpretadorportugolvisual.cadastros.CadastroAulasDialog;
import interpretadorportugolvisual.cadastros.CadastroExerciciosDialog;
import interpretadorportugolvisual.cadastros.CadastroNiveisDialog;
import interpretadorportugolvisual.cadastros.CadastroTurmasDialog;
import interpretadorportugolvisual.interpreter.EditorResolver;
import interpretadorportugolvisual.relatorios.Registrador;
import interpretadorportugolvisual.relatorios.RelatorioTurmaDialog;
import java.io.InputStreamReader;
import java.io.StringBufferInputStream;
import org.jdesktop.application.Action;
import org.jdesktop.application.SingleFrameApplication;
import org.jdesktop.application.FrameView;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JOptionPane;

/**
 * The application's main frame.
 */
public class InterpretadorPortugolVisualView extends FrameView {

    public InterpretadorPortugolVisualView(SingleFrameApplication app) {
        super(app);

        initComponents();
    }

    @Action
    public void showAboutBox() {
        if (aboutBox == null) {
            JFrame mainFrame = InterpretadorPortugolVisualApp.getApplication().getMainFrame();
            aboutBox = new InterpretadorPortugolVisualAboutBox(mainFrame);
            aboutBox.setLocationRelativeTo(mainFrame);
        }
        InterpretadorPortugolVisualApp.getApplication().show(aboutBox);
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        mainPanel = new javax.swing.JPanel();
        jPanel1 = new javax.swing.JPanel();
        jScrollPane1 = new javax.swing.JScrollPane();
        txtpnPrograma = new javax.swing.JTextPane();
        jPanel2 = new javax.swing.JPanel();
        jScrollPane2 = new javax.swing.JScrollPane();
        txtpnSaida = new javax.swing.JTextPane();
        jToolBar1 = new javax.swing.JToolBar();
        btnExecutar = new javax.swing.JButton();
        btnVisualizar = new javax.swing.JButton();
        btnProblema = new javax.swing.JButton();
        btnSolucao = new javax.swing.JButton();
        btnListaProblemas = new javax.swing.JButton();
        menuBar = new javax.swing.JMenuBar();
        javax.swing.JMenu fileMenu = new javax.swing.JMenu();
        mnConectar = new javax.swing.JMenuItem();
        mnProfessor = new javax.swing.JMenuItem();
        javax.swing.JMenuItem mnExit = new javax.swing.JMenuItem();
        MenuProfessor = new javax.swing.JMenu();
        jMenu2 = new javax.swing.JMenu();
        itmAluno = new javax.swing.JMenuItem();
        itmProfessor = new javax.swing.JMenuItem();
        mnAula = new javax.swing.JMenuItem();
        mnExercicio = new javax.swing.JMenuItem();
        mnTurma = new javax.swing.JMenuItem();
        mnNivel = new javax.swing.JMenuItem();
        jMenu3 = new javax.swing.JMenu();
        mnRelatorioDesempenho = new javax.swing.JMenuItem();
        javax.swing.JMenu helpMenu = new javax.swing.JMenu();
        javax.swing.JMenuItem aboutMenuItem = new javax.swing.JMenuItem();

        mainPanel.setName("mainPanel"); // NOI18N

        org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(interpretadorportugolvisual.InterpretadorPortugolVisualApp.class).getContext().getResourceMap(InterpretadorPortugolVisualView.class);
        jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(resourceMap.getString("jPanel1.border.title"))); // NOI18N
        jPanel1.setName("jPanel1"); // NOI18N
        jPanel1.setLayout(new javax.swing.BoxLayout(jPanel1, javax.swing.BoxLayout.LINE_AXIS));

        jScrollPane1.setName("jScrollPane1"); // NOI18N

        txtpnPrograma.setText(resourceMap.getString("txtpnPrograma.text")); // NOI18N
        txtpnPrograma.setName("txtpnPrograma"); // NOI18N
        jScrollPane1.setViewportView(txtpnPrograma);

        jPanel1.add(jScrollPane1);

        jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(resourceMap.getString("jPanel2.border.title"))); // NOI18N
        jPanel2.setName("jPanel2"); // NOI18N
        jPanel2.setLayout(new javax.swing.BoxLayout(jPanel2, javax.swing.BoxLayout.LINE_AXIS));

        jScrollPane2.setName("jScrollPane2"); // NOI18N

        txtpnSaida.setEditable(false);
        txtpnSaida.setName("txtpnSaida"); // NOI18N
        jScrollPane2.setViewportView(txtpnSaida);

        jPanel2.add(jScrollPane2);

        jToolBar1.setFloatable(false);
        jToolBar1.setRollover(true);
        jToolBar1.setName("jToolBar1"); // NOI18N

        btnExecutar.setIcon(resourceMap.getIcon("btnExecutar.icon")); // NOI18N
        btnExecutar.setText(resourceMap.getString("btnExecutar.text")); // NOI18N
        btnExecutar.setToolTipText(resourceMap.getString("btnExecutar.toolTipText")); // NOI18N
        btnExecutar.setFocusable(false);
        btnExecutar.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btnExecutar.setName("btnExecutar"); // NOI18N
        btnExecutar.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        btnExecutar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnExecutarActionPerformed(evt);
            }
        });
        jToolBar1.add(btnExecutar);

        btnVisualizar.setIcon(resourceMap.getIcon("btnVisualizar.icon")); // NOI18N
        btnVisualizar.setText(resourceMap.getString("btnVisualizar.text")); // NOI18N
        btnVisualizar.setToolTipText(resourceMap.getString("btnVisualizar.toolTipText")); // NOI18N
        btnVisualizar.setFocusable(false);
        btnVisualizar.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btnVisualizar.setName("btnVisualizar"); // NOI18N
        btnVisualizar.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        btnVisualizar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnVisualizarActionPerformed(evt);
            }
        });
        jToolBar1.add(btnVisualizar);

        btnProblema.setIcon(resourceMap.getIcon("btnProblema.icon")); // NOI18N
        btnProblema.setText(resourceMap.getString("btnProblema.text")); // NOI18N
        btnProblema.setToolTipText(resourceMap.getString("btnProblema.toolTipText")); // NOI18N
        btnProblema.setEnabled(false);
        btnProblema.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btnProblema.setName("btnProblema"); // NOI18N
        btnProblema.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        btnProblema.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnProblemaActionPerformed(evt);
            }
        });
        jToolBar1.add(btnProblema);

        btnSolucao.setIcon(resourceMap.getIcon("btnSolucao.icon")); // NOI18N
        btnSolucao.setText(resourceMap.getString("btnSolucao.text")); // NOI18N
        btnSolucao.setToolTipText(resourceMap.getString("btnSolucao.toolTipText")); // NOI18N
        btnSolucao.setEnabled(false);
        btnSolucao.setFocusable(false);
        btnSolucao.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btnSolucao.setName("btnSolucao"); // NOI18N
        btnSolucao.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        btnSolucao.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnSolucaoActionPerformed(evt);
            }
        });
        jToolBar1.add(btnSolucao);

        btnListaProblemas.setIcon(resourceMap.getIcon("btnListaProblemas.icon")); // NOI18N
        btnListaProblemas.setText(resourceMap.getString("btnListaProblemas.text")); // NOI18N
        btnListaProblemas.setToolTipText(resourceMap.getString("btnListaProblemas.toolTipText")); // NOI18N
        btnListaProblemas.setFocusable(false);
        btnListaProblemas.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btnListaProblemas.setName("btnListaProblemas"); // NOI18N
        btnListaProblemas.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        btnListaProblemas.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnListaProblemasActionPerformed(evt);
            }
        });
        jToolBar1.add(btnListaProblemas);

        org.jdesktop.layout.GroupLayout mainPanelLayout = new org.jdesktop.layout.GroupLayout(mainPanel);
        mainPanel.setLayout(mainPanelLayout);
        mainPanelLayout.setHorizontalGroup(
            mainPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(org.jdesktop.layout.GroupLayout.TRAILING, mainPanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(mainPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
                    .add(org.jdesktop.layout.GroupLayout.LEADING, jToolBar1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 1287, Short.MAX_VALUE)
                    .add(jPanel2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 1287, Short.MAX_VALUE)
                    .add(jPanel1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 1287, Short.MAX_VALUE))
                .addContainerGap())
        );
        mainPanelLayout.setVerticalGroup(
            mainPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(org.jdesktop.layout.GroupLayout.TRAILING, mainPanelLayout.createSequentialGroup()
                .add(jToolBar1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(jPanel1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 432, Short.MAX_VALUE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(jPanel2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 191, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );

        menuBar.setName("menuBar"); // NOI18N

        fileMenu.setText(resourceMap.getString("fileMenu.text")); // NOI18N
        fileMenu.setName("fileMenu"); // NOI18N

        mnConectar.setText(resourceMap.getString("mnConectar.text")); // NOI18N
        mnConectar.setName("mnConectar"); // NOI18N
        mnConectar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                mnConectarActionPerformed(evt);
            }
        });
        fileMenu.add(mnConectar);

        mnProfessor.setText(resourceMap.getString("mnProfessor.text")); // NOI18N
        mnProfessor.setName("mnProfessor"); // NOI18N
        mnProfessor.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                mnProfessorActionPerformed(evt);
            }
        });
        fileMenu.add(mnProfessor);

        javax.swing.ActionMap actionMap = org.jdesktop.application.Application.getInstance(interpretadorportugolvisual.InterpretadorPortugolVisualApp.class).getContext().getActionMap(InterpretadorPortugolVisualView.class, this);
        mnExit.setAction(actionMap.get("quit")); // NOI18N
        mnExit.setText(resourceMap.getString("mnExit.text")); // NOI18N
        mnExit.setName("mnExit"); // NOI18N
        fileMenu.add(mnExit);

        menuBar.add(fileMenu);

        MenuProfessor.setText(resourceMap.getString("MenuProfessor.text")); // NOI18N
        MenuProfessor.setEnabled(false);
        MenuProfessor.setName("MenuProfessor"); // NOI18N

        jMenu2.setText(resourceMap.getString("jMenu2.text")); // NOI18N
        jMenu2.setName("jMenu2"); // NOI18N

        itmAluno.setText(resourceMap.getString("itmAluno.text")); // NOI18N
        itmAluno.setName("itmAluno"); // NOI18N
        itmAluno.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                itmAlunoActionPerformed(evt);
            }
        });
        jMenu2.add(itmAluno);

        itmProfessor.setText(resourceMap.getString("itmProfessor.text")); // NOI18N
        itmProfessor.setName("itmProfessor"); // NOI18N
        jMenu2.add(itmProfessor);

        mnAula.setText(resourceMap.getString("mnAula.text")); // NOI18N
        mnAula.setName("mnAula"); // NOI18N
        mnAula.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                mnAulaActionPerformed(evt);
            }
        });
        jMenu2.add(mnAula);

        mnExercicio.setText(resourceMap.getString("mnExercicio.text")); // NOI18N
        mnExercicio.setName("mnExercicio"); // NOI18N
        mnExercicio.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                mnExercicioActionPerformed(evt);
            }
        });
        jMenu2.add(mnExercicio);

        mnTurma.setText(resourceMap.getString("mnTurma.text")); // NOI18N
        mnTurma.setName("mnTurma"); // NOI18N
        mnTurma.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                mnTurmaActionPerformed(evt);
            }
        });
        jMenu2.add(mnTurma);

        mnNivel.setText(resourceMap.getString("mnNivel.text")); // NOI18N
        mnNivel.setName("mnNivel"); // NOI18N
        mnNivel.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                mnNivelActionPerformed(evt);
            }
        });
        jMenu2.add(mnNivel);

        MenuProfessor.add(jMenu2);

        jMenu3.setText(resourceMap.getString("jMenu3.text")); // NOI18N
        jMenu3.setName("jMenu3"); // NOI18N

        mnRelatorioDesempenho.setText(resourceMap.getString("mnRelatorioDesempenho.text")); // NOI18N
        mnRelatorioDesempenho.setName("mnRelatorioDesempenho"); // NOI18N
        mnRelatorioDesempenho.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                mnRelatorioDesempenhoActionPerformed(evt);
            }
        });
        jMenu3.add(mnRelatorioDesempenho);

        MenuProfessor.add(jMenu3);

        menuBar.add(MenuProfessor);

        helpMenu.setText(resourceMap.getString("helpMenu.text")); // NOI18N
        helpMenu.setName("helpMenu"); // NOI18N

        aboutMenuItem.setAction(actionMap.get("showAboutBox")); // NOI18N
        aboutMenuItem.setText(resourceMap.getString("aboutMenuItem.text")); // NOI18N
        aboutMenuItem.setName("aboutMenuItem"); // NOI18N
        helpMenu.add(aboutMenuItem);

        menuBar.add(helpMenu);

        setComponent(mainPanel);
        setMenuBar(menuBar);
    }// </editor-fold>//GEN-END:initComponents

    private void btnExecutarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnExecutarActionPerformed

        SabbleInterpreter interpreter = new SabbleInterpreter();

        try {
            Registrador.atualizarSolucaoAluno(txtpnPrograma.getText(), false);

            txtpnSaida.setText("");
            interpreter.execute(new InputStreamReader(new StringBufferInputStream(txtpnPrograma.getText())), new EditorResolver(txtpnSaida));

            Registrador.registrarExecucao();
            txtpnSaida.setText(txtpnSaida.getText() + "\n\n FIM EXECUÇÃO");

        } catch (Exception e) {
            e.printStackTrace();
//            txtpnSaida.setText(txtpnSaida.getText() + "\n\n FALHA NA EXECUÇÃO");
        }
    }//GEN-LAST:event_btnExecutarActionPerformed

    private void btnVisualizarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnVisualizarActionPerformed
        Registrador.atualizarSolucaoAluno(txtpnPrograma.getText(), true);
        new VisualizarExecucaoDialog(this.getFrame(), new InputStreamReader(new StringBufferInputStream(txtpnPrograma.getText())), true).setVisible(true);
        Registrador.registrarExecucao();
    }//GEN-LAST:event_btnVisualizarActionPerformed

    private void mnConectarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnConectarActionPerformed

        new ConectarDialog(this.getFrame(), true).setVisible(true);
        if (Session.getInstance().isLogged()) {
            if (Session.getInstance().getAluno() != null) {
                habilitarFerramentas();
            } else {
                desabilitarFerramentas();
            }
        }
    }//GEN-LAST:event_mnConectarActionPerformed

    private void mnProfessorActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnProfessorActionPerformed

        new ConectarProfessorDialog(this.getFrame(), true).setVisible(true);

        if (Session.getInstance().isLogged()) {
            if (Session.getInstance().getProfessor() != null) {
                MenuProfessor.setEnabled(true);
            } else {
                MenuProfessor.setEnabled(false);
            }
        }
    }//GEN-LAST:event_mnProfessorActionPerformed

    private void mnTurmaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnTurmaActionPerformed
        new CadastroTurmasDialog(this.getFrame(), true).setVisible(true);
    }//GEN-LAST:event_mnTurmaActionPerformed

    private void mnAulaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnAulaActionPerformed
        new CadastroAulasDialog(this.getFrame(), true).setVisible(true);
    }//GEN-LAST:event_mnAulaActionPerformed

    private void mnExercicioActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnExercicioActionPerformed
        new CadastroExerciciosDialog(this.getFrame(), true).setVisible(true);
    }//GEN-LAST:event_mnExercicioActionPerformed

    private void mnNivelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnNivelActionPerformed
        new CadastroNiveisDialog(this.getFrame(), true).setVisible(true);
    }//GEN-LAST:event_mnNivelActionPerformed

    private void itmAlunoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_itmAlunoActionPerformed
        new CadastroAlunosDialog(this.getFrame(), true).setVisible(true);
    }//GEN-LAST:event_itmAlunoActionPerformed

    private void btnListaProblemasActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnListaProblemasActionPerformed
        if(Session.getInstance().getProfessor() != null) {
            new ExerciciosListaProfessorDialog(this.getFrame(), true).setVisible(true);
        } else {
            new ExerciciosListaDialog(this.getFrame(), true).setVisible(true);
        }
    }//GEN-LAST:event_btnListaProblemasActionPerformed

    private void btnProblemaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnProblemaActionPerformed
        if(SessaoAluno.getInstance().exercicioSelecionado != null)
            new ProblemaDialog(this.getFrame(), true).setTexto(SessaoAluno.getInstance().exercicioSelecionado.getProblema()).setVisible(true);
    }//GEN-LAST:event_btnProblemaActionPerformed

    private void btnSolucaoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnSolucaoActionPerformed
               
        if(SessaoAluno.getInstance().exercicioSelecionado != null && SessaoAluno.getInstance().exercicioSelecionado.isLiberado()) {
            txtpnPrograma.setText(SessaoAluno.getInstance().exercicioSelecionado.getSolucaoproposta());
        } else {
            JOptionPane.showMessageDialog(this.getFrame(), "A solução proposta para este exercício não está liberada.");
        }
    }//GEN-LAST:event_btnSolucaoActionPerformed

    private void mnRelatorioDesempenhoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnRelatorioDesempenhoActionPerformed
        new RelatorioTurmaDialog(this.getFrame(), true).setVisible(true);
    }//GEN-LAST:event_mnRelatorioDesempenhoActionPerformed

    public void habilitarFerramentas(){
        btnListaProblemas.setEnabled(true);
        btnSolucao.setEnabled(true);
        this.btnProblema.setEnabled(true);
    }

    public void desabilitarFerramentas(){
        btnListaProblemas.setEnabled(true);
        this.btnSolucao.setEnabled(true);
        this.btnProblema.setEnabled(false);
    }

    public void habilitarBtnProblema(){
        btnProblema.setEnabled(true);
    }

    public void desabilitarBtnProblema(){
        btnProblema.setEnabled(false);
    }
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JMenu MenuProfessor;
    private javax.swing.JButton btnExecutar;
    private javax.swing.JButton btnListaProblemas;
    private javax.swing.JButton btnProblema;
    private javax.swing.JButton btnSolucao;
    private javax.swing.JButton btnVisualizar;
    private javax.swing.JMenuItem itmAluno;
    private javax.swing.JMenuItem itmProfessor;
    private javax.swing.JMenu jMenu2;
    private javax.swing.JMenu jMenu3;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JToolBar jToolBar1;
    private javax.swing.JPanel mainPanel;
    private javax.swing.JMenuBar menuBar;
    private javax.swing.JMenuItem mnAula;
    private javax.swing.JMenuItem mnConectar;
    private javax.swing.JMenuItem mnExercicio;
    private javax.swing.JMenuItem mnNivel;
    private javax.swing.JMenuItem mnProfessor;
    private javax.swing.JMenuItem mnRelatorioDesempenho;
    private javax.swing.JMenuItem mnTurma;
    private javax.swing.JTextPane txtpnPrograma;
    private javax.swing.JTextPane txtpnSaida;
    // End of variables declaration//GEN-END:variables

//    private final Timer messageTimer;
//    private final Timer busyIconTimer;
//    private final Icon idleIcon;
//    private final Icon[] busyIcons = new Icon[15];
//    private int busyIconIndex = 0;

    private JDialog aboutBox;
}
